package com.tarena.lbs.user.dao.repository;

import com.tarena.lbs.user.pojo.param.UserParam;
import com.tarena.lbs.user.pojo.po.UserPO;

import java.util.List;

/**
 * 用户数据访问接口
 */
public interface UserRepository {
    /**
     * 通过手机号查询用户
     * @param phone 手机号
     * @return 用户PO
     */
    UserPO getByPhone(String phone);

    /**
     * 统计手机号注册数量
     * @param phone 手机号
     * @return 数量
     */
    Long countUserByPhone(String phone);

    /**
     * 保存用户
     * @param userPO 用户PO
     */
    void save(UserPO userPO);

    /**
     * 通过ID查询用户
     * @param userId 用户ID
     * @return 用户PO
     */
    UserPO getById(Integer userId);

    List<UserPO> listUser(UserParam  param);

    void deleteById(Integer id);
}
